package com.legendframework.core.dao.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Column {

    /**
     * 字段别名
     * 条件查询会取这个字段名
     */
    String value() default "";

    /**
     * 是否映射到表中
     * @return
     */
    boolean exist() default true;

    /**
     * 字段注释
     */
    String[] comments() default {};

    /**
     * 是否安装字段类型来输出可选值范围
     *
     * 目前仅支持两种字段类型 Boolean | Enum
     *
     * Enum 类型字段必须实现如下接口
     * @see com.legendframework.core.dao.enums.IEnum
     *
     * @return
     */
    boolean isOutPutOptionalRange() default true;

    /**
     * 排序 值越小越靠前
     *
     * 小于1的值 代表永远排在最后
     * @return
     */
    int sort() default -1;
}
